/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package centralehotelweb.bean;

import centralehotel.metier.backoffice.InscriptionHotelMetierLocal;
import centralehotel.modele.FicheHotel;
import centralehotel.modele.GestionnaireHotel;
import centralehotel.modele.PeriodeTarif;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Vector;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
 *
 * @author noel
 */
public class InscriptionHotelBean extends AbstractBean{
    @EJB
    private InscriptionHotelMetierLocal inscriptionHotelMetierBean;
    private FicheHotel hotel;
    private GestionnaireHotel gestHotel;

    public InscriptionHotelBean()
    {   
        hotel = new FicheHotel();
        Collection<PeriodeTarif> liste = new Vector<PeriodeTarif>();
        PeriodeTarif p = new PeriodeTarif();
        p.setDateDebut(new Date());
        p.setDateFin(new Date());
        p.setPrixSimple(14.99f);
        p.setPrixDouble(24.99f);
        p.setPrixSuite(34.99f);
        liste.add(p);
        hotel.setAdresse("15 rue du moulin");
        hotel.setDescription("Fucking hotel de luxe");
        hotel.setNbChambreDouble(5);
        hotel.setNbChambreSimple(25);
        hotel.setNbSuite(3);
        hotel.setServices("piscines, bateau");
        hotel.setPeriodeTarifCollection(liste);
        System.out.println("constructeur");
    }

    public FicheHotel getHotel()
    {
        return hotel;
    }

    public void setHotel(FicheHotel hotel)
    {
        this.hotel = hotel;
    }
    
    public String validation()
    {
        if(hotel.getPeriodeTarifCollection()==null || hotel.getPeriodeTarifCollection().isEmpty()){
            addMessage("periodeTarifs",FacesMessage.SEVERITY_ERROR, "Periode de tarif obligatoire !"); 
            return null;
        }
        
        boolean isEdit=(hotel.getIdFicheHotel()!=null);
        GestionnaireHotel gh = getLoginBean().getGestionnaire();
        hotel.setGestionnaireHotel(gh);
        inscriptionHotelMetierBean.SaveHotel(hotel);
        
        // réinit du form
        hotel  = new FicheHotel();
        
        if(isEdit){
            addMessage(FacesMessage.SEVERITY_INFO, "Hotel modifié");
            
        }else{
            addMessage(FacesMessage.SEVERITY_INFO, "Hotel enregistré");
        }
        
        return "goToTDB";
    }

    public void ajouterPeriode()
    {
        if(hotel.getPeriodeTarifCollection()==null)
            hotel.setPeriodeTarifCollection(new ArrayList<PeriodeTarif>());
        
         hotel.getPeriodeTarifCollection().add(new PeriodeTarif());
    }
}
